<?php
/**
 * Manejador de consultas
 * Representa una consulta a la base de datos
 *
 * @author Federico del valle
 */
class queryManager {

  /**
   * Construye una sentencia SQL Insert
   * 
   * @param Array $campos array asociativo de los campos y sus valores
   * @param String $tabla nombre de la tabla donde se va a insertar
   * @param String $condicion condicion de la consulta
   * @return String query 
   */
  static function hacerInsert($campos,$tabla,$condicion = "") {
    if (empty ($campos)) {
      throw new Exception("No hay campos para esta consulta");
      die();
    }
    $query = "INSERT INTO `".$tabla ."` ";
    $indices = "(`".implode("`,`", array_keys($campos))."`)";
    foreach ($campos as $valor) {
      $valor = mysql_real_escape_string($valor);
    }

    $valores = "('".implode("','", $campos)."')";
    $query .= $indices ." VALUES ".$valores;
    return $query;
  }

  /**
   * Construye una sentencia delete
   *
   * @param String $tabla nombre de la tabla donde se va realizar el delete
   * @param String $condicion condicion del delete
   * @param int $limite limite de filas que se van a eliminar
   * @return String query
   */
  static function hacerDelete($tabla,$condicion,$limite = 1) {
    return "DELETE FROM ".$tabla." WHERE ".$condicion." LIMIT ".$limite;
  }

  /**
   * Construye una sentencia SQL Update
   * 
   * @param Array $campos Array asociativo de los campos y sus nuevos valores
   * @param String $tabla nombre de la tabla donde se va a realizar el update
   * @param String $condicion condicion del WHERE
   * @return String consulta SQL
   */
  static function hacerUpdate($campos,$tabla,$condicion = "") {
    $valores = array();
    foreach ($campos as $indice => $valor) {
      $valores[] = "`".$indice."`=".mysql_real_escape_string($valor);
    }

    $query = "UPDATE ".$tabla." SET ".implode(",", $valores);
    if (!empty ($condicion)) {
      $query .= " WHERE ".$condicion;
    }
    return $query;
  }

}
?>
